1. Field of the Invention
The present invention relates to methods and systems for controlling object oriented software applications and, more particularly, to methods and systems for optimally controlling functionality and access to data files contained within object oriented software applications.
2. The Prior Art
Current software standards narrowly define the functions that software may perform before an application is started or launched. All aspects of a program""s appearance and behavior within an operating environment are controlled by an operating system. The computer""s operating system thus generally constrains the operations of software applications. Features of a software application can only be accessed by starting the entire application, which causes the computer to load a large part of the program, usually in the form of an executable file (xe2x80x9c.exexe2x80x9d) together with several smaller files, into the computer""s random access memory (xe2x80x9cRAMxe2x80x9d). This method of running a software application is time consuming and wastes valuable resources of the computer.
A conventional piece of software that is written to operate under an object oriented operating system, such as Windows(copyright) (or Windows 95(copyright), must follow narrow guidelines set forth by the operating system vendor. When a computer user loads the software application into the computer system for the first time, the software application will provide the operating system with enough information to create a static icon and a simple instruction on how to run the program. The icon that is created always remains static and is the only means by which the user can gain access to any of the program""s features. The operating system associates the static icon with a command line that will start the software application. When a computer user starts the software application by clicking on or selecting the static icon, the operating system automatically runs the command line that initiates the software application. See FIG. 2.
The command line that the operating system automatically runs when a user activates the static icon will generally start the software application""s executable file. In turn, the software application""s executable file takes control of the entire software application and loads several files associated with that application""s features. Unfortunately, many of these files may be directed to certain features of the software application which the user may not want to use. Consequently, time and processing power may be wasted by loading files which are unnecessary.
As an example, a Windows(copyright) software application is written and linked as a program with one or several dynamic link library (xe2x80x9cDLLxe2x80x9d) files. In a software application written for Windows(copyright), large amounts of data must be fully loaded into the operating system and xe2x80x9clinkedxe2x80x9d together. This action requires a lot of RAM, processing power, and time to complete. In addition, software applications written for these operating systems are somewhat cryptic and difficult to install and use. Online help is a frequent solution, but this usually requires the computer user to have already loaded the program into the computer system""s main memory and to have started running it before being given access to the help files. If help is offered outside of the application, the computer user must be very knowledgeable about the software application since he or she must know how to locate and pull up various kinds of help files. A few examples of these files are Windows(copyright) help files (xe2x80x9c.HLPxe2x80x9d), README.TXT files, and HTML files.
Configuration information for software applications generally does not follow a standard format but is usually very program specific. Usually the configuration information is located within the software application and can only be accessed by starting the entire application. A few software applications will install a second executable file that allows modification of the configuration files without starting the main executable file, but this is the exception and not the norm. In these types of software applications, the two executable files run independently of one another and the user is only allowed access to configuration settings. In order to change a simple configuration setting, for instance, either the entire software application must be running, or a completely separate software application must be started. This can frustrate a computer user and cause a needless overuse of computer system resources. An example would be launching an entire mail system to turn on an auto-reply message or to forward information.
Over the years operating systems have added features that make it appear that the software applications are performing more functions. A typical example of this is animating the mouse pointer while an application is loading. These changes are merely additions to the structure of the program management system found on most operating systems or user interfaces and do not represent any increase in flexibility.
Inflexibility has not previously been considered much of a problem. However, as computers get more powerful and include more memory, users"" expectations for computer and software application performance have dramatically increased. Thus, a need exists for improved operating capability and greater flexibility in the use of software applications for object oriented computer systems.
The present invention provides methods and systems for more optimally controlling object oriented software applications in computer systems and for increasing the flexibility of software applications designed using object oriented programming. In this invention, an xe2x80x9capplication wrapperxe2x80x9d is incorporated into the computer system to permit selective access to specific functions and data of an object oriented software application without starting the entire software application. Where an application wrapper is incorporated into the design of a software application, a programmer has the ability to define the appearance and behavior of the application regardless of the constraints placed on the programmer by the computer""s operating system. Thus, the use of an application wrapper avoids the artificial constraints imposed by the operating system, by separating control of the application wrapper from the operating system but at the same time establishing and maintaining a stable interface between the two.
The present invention also provides application wrappers that are capable of communicating with the operating system and can create object oriented displays with graphic capabilities beyond those allowed by the constraints of the operating system. Computer icons can, with the use of an application wrapper of the invention, now be designed to include sound, computer animation, and video clips. Furthermore, the use of an application wrapper gives a programmer the ability to design software applications that run on a modular basis, thereby using less system resources when in operation than the present wholesale program loading.